Microsoft Sentinel je cloudový SIEM . Umožňuje sbírat logy z různých zdrojů, parsování a prohlížení v tabulkách, tvorbu alertových služeb reportů a podobně.
Jelikož jde o cloudovou službu není možné jej instalovat na vlastních serverech. Vyjma napojování našich "on premise" serverů vše probíhá v prostředí Microsoft Azure
Azure ->Microsoft Sentinel (MSS) - použijte search, nebo sekci nedávno navštívených stránek
V levé horní části naleznete tlačítko create . V následujícím okně je třeba vybrat, nebo vytvořit Log Analytics workspace (LAw). Vytvořte nový LAw a vyplňte požadovaná pole. Po vytvoření LAw se vraťe k vytváření nové instance MSS, vyberte požadovaný LAw. Vyčkejte na poběhnutí instalace.
Azure Arc umožňuje napojit on premise servery, servery jiných cloudových providerů do Azure prostředí. Dále poskytuje informace o těchto serverech, včetně serverů přímo v Azure. Poskytuje služby jako například Heartbeat a je nezbytný pro sběr logů vlastních formátů, speciálních zdrojů apod.
Azure ->Azure Arc - použijte search, nebo sekci nedávno navštívených stránek
Pro přidání serveru jednotlivě vyberte Overview->Add resources->Machines->Add/Create->Add a machine->Add a single server-> Generate script . Vyplňte a vygenerovaný script vložte do terminálu své VM.
Azure ->Monitor - použijte search, nebo sekci nedávno navštívených stránek
V sekci Settings naleznete Data Collection endpoints vytvořte nový
Azure ->Log analytics workspaces - použijte search, nebo sekci nedávno navštívených stránek
Vyberte příslušný LAw, v sekci Settings Tables, v levé horní části této sekcte je možnost create, zde vyberte DCR-based table.
Vytvořte nový table, využijte endpoint který jste právě vytvořili a současně vytvořte nové pravidlo. Doporučuji pojmenovat tak, aby bylo posznat že jde o pravidlo použité k vytvoření table
Importujte schema (pokud jde o test využite jedno ze schemat v sekci example schemas) a případně upravte KQL parser
{"RawData": "AppName,Id,Cause,Message"}
Azure ->Monitor - použijte search, nebo sekci nedávno navštívených stránek
V sekci Settings naleznete Data Collection rules vytvořte nový
Použijte stejný region, resource group a vámi vytvořený endpoint.
V sekci resources zvolte zdrojové zařízení, zapněte endpointy a zvolte endpoint na zařízení.
V sekci collect and deliver přidejte datasource typu custom text logs. File pattern je cesta k souborům s logy, table name zvolte vámi vytvořený table, nezapoměňte na příponu _CL a případně upravte transform parser. Jako destinaci zvolte svůj Log Analytics workspace
Pro ověření funkčnosti vytvořte nějaké logy v sledovaných souborech a spousťte query v destinaci(MS Senitnelu)
Vytvořit základní test logy můžete například pomocí echo echo AppName,Id,Cause,Message > /var/log/test/sentinel/test.log - přepíše soubor
Použití > přepisuje obsah souboru, >> píše na konec souboru
Pro zobrazení logů je třeba spustit query ve tvaru jména tabulky v MS Sentinel. Tedy pokud jméno tabulky do které se sbírané logy ukládají je testTable1_CL, query bude také jen testTable1_CL
Log pro parser: 2025-03-06T11:31:29+00:00,AppName,Id,Cause,Message
V tuto chvíli úspěšně přijímáte logy ale data jsou stále ve stejné formě jako v souboru, tedy vypadají nějak takto:
AppName,Id,Cause,Message
Proto je třeba je tzv. rozparsovat pomocí KQL (Kusto query language). Cílem je aby každá hodnota měla svůj sloupec, s odpovídajícím názvem.
extend
extend column = "value"
Vytvoří sloupec
Vytvoří sloupec column a dá mu hodnotu value
project
project column, column2
Definuje, které sloupce se z query vrátí
Vrátí sloupce column a column2
split()
split("hello,world")
Funkce rozdělující string na array stringů
-> ["hello","world"]
to[datatype]()
todatetime("2025-03-06T11:31:29+00:00")
toint("9")
castuje datatype
"2025-03-06T11:31:29+00:00" -> 2025-03-06T11:31:29+00:00
"9" -> 9
Konzultujte s dokumentací a vytvořte parser pro své logy ve tvaru: timestamp,AppName,Id,Cause,Message
Tedy například: 2025-03-06T11:31:29+00:00,TestApp,1,test,testing
Pokud nemáte splněné zadání s posíláním logů do Azure využijte tvorbu nové tabulky. Není třeba tabulku kompletně vytvořit, stačí během tvorby nahrát schema soubor.json s obsahem:
{"RawData": "2025-04-11T07:31:23+00:00,TestApp,1,test,testing"}
A vytvořte parser v sekci transformace
create custom log -> 2. schema and transformation -> transformation editor
Správně castujte datatypy, hlavně čas a integer
Výsledkem budou sloupce s hodnotami:
Sloupec
Hodnota
TimeGenerated
2025-04-11T07:31:23+00:00
AppName
TestApp
Id
1
Cause
test
Message
testing
Pošlete screenshot obsahující query(parser) a výsledné sloupce pro získání známky, případně zpětné vazby.
Preslova 72/25
Praha 5 - Smíchov
150 21
n17r0 © 2025